Etykieta – jednostka leksykalna służąca oznaczeniu instrukcji w celu wskazania celu instrukcji skoku. W językach z numerowanymi wierszami kodu funkcje etykiety pełnią numery wierszy (zwykle w językach interpretowanych).
Najczęściej etykiety są pierwszymi wyrażeniami w danym wierszu i mają postać łańcucha znaków (liter lub cyfr) oddzielonych od instrukcji znakiem dwukropka:
etykieta: instrukcja
Niekiedy stosuje się też słowo kluczowe label
.
instrukcje label etykieta instrukcje
Przykładowe języki programowania:
i wiele innych języków programowania o zapisie swobodnym kodu źródłowego,
Przykładowy języki programowania to język Snobol[8], w którym każdy łańcuch znaków rozpoczynający się od litery lub cyfry na pierwszej pozycji wiersza, interpretowany jest jako etykieta instrukcji, przy czym po pierwszej literze mogą wystąpić dowolne znaki alfabetu języka, z wyjątkiem separatorów, które kończą symbol etykiety.
15 PRINT „komunikat"
Przykładowe języki programowania:
i inne.
10.5 DO PART 11
Ten sposób oznaczania wierszy programu wiąże się ze specyfiką niektórych języków programowania (JOSS, JEAN[14][12]) w których etykieta składa się z dwóch członów: PART.STEP
. Pierwsza część etykiety PART
w zasadzie obejmuje grupę instrukcji stanowiących podprogram, który może zostać wywołany. Kolejne instrukcje w ramach tak utworzonej sekcji są oznaczane unikatową (w ramach sekcji) etykietą STEP
, która może wskazywać miejsce skoków.
W języku programowanie Forth[15][16] istnieje możliwość definiowania skoków do określonej instrukcji, mimo braku etytkiety. Służą temu operatory skoków warunkowych i bezwarunkowych 0BRANCH
i BRANCH
, stosowane głównie do definiowania nowych instrukcji strukturalnych.
W niektórych języka programowana pojęcie etykiety jest rozszerzone w stosunku do większości języków w których etykiety dotyczą tylko instrukcji. Mianowicie w takich językach jak PL/1[6][7], PL/M[17][18] etykietami nazywa się także nazwy procedur (i ingresji do procedur). Etykiety (zarówno jako etykiety poprzedzające instrukcje języka, jak i jako nazwy ingresji) mogą być przechowywane w zmiennych i stanowić wartość (w tym przypadku w uproszeniu można wartość tę interpretować jako adres pamięci w segmencie kodu).
<ref>
. Brak tekstu w przypisie o nazwie pascal
<ref>
. Brak tekstu w przypisie o nazwie bp
<ref>
. Brak tekstu w przypisie o nazwie c-kr
<ref>
. Brak tekstu w przypisie o nazwie tc-jb
<ref>
. Brak tekstu w przypisie o nazwie cpp-jb
<ref>
. Brak tekstu w przypisie o nazwie pl1jb
<ref>
. Brak tekstu w przypisie o nazwie pl1a
<ref>
. Brak tekstu w przypisie o nazwie snobol
<ref>
. Brak tekstu w przypisie o nazwie basic-zcz
<ref>
. Brak tekstu w przypisie o nazwie basic-wi
<ref>
. Brak tekstu w przypisie o nazwie fortran77
<ref>
. Brak tekstu w przypisie o nazwie jeanfortran
<ref>
. Brak tekstu w przypisie o nazwie kilka
<ref>
. Brak tekstu w przypisie o nazwie jean
<ref>
. Brak tekstu w przypisie o nazwie forth_jb
<ref>
. Brak tekstu w przypisie o nazwie forth_jr
<ref>
. Brak tekstu w przypisie o nazwie plm
<ref>
. Brak tekstu w przypisie o nazwie isisii